package com.xyf.sys.service;

import com.github.pagehelper.Page;
import com.xyf.sys.domain.ChannelConfig;
import com.xyf.sys.domain.Dept;
import com.xyf.sys.domain.User;
import com.xyf.sys.domain.UserDept;
import com.xyf.sys.vo.UserRealName;
import com.xyf.sys.vo.UserVo;

import java.math.BigDecimal;
import java.util.List;

/**
 * @Author
 * @Date
 * @Description
 */
public interface IUserService {

    User get(String id);

    User getShortId(String shortId);

    User getByMobile(String phone);

    User getByMobile(String phone, String appid);

    User getUser(String openid);

    User getUser(String unionid, String appid);

    User create(String openid, String unionid, String appid);

    int update(User user);

    List<User> findNearbyRegimentList(BigDecimal longitude, BigDecimal latitude);

    List<User> findNearbyRegimentList(Long deptId, BigDecimal longitude, BigDecimal latitude);

    List<User> getUserList(String userId, String keyword, boolean appEnv, Long roleId);

    UserVo getInfo(String userId, boolean appEnv, boolean client);

    UserVo getInfo(String userId, boolean appEnv);

    UserVo getInfo(String userId);

    int userRealName(UserRealName userRealName);

    void save(User user);

    Object authorUser(String userId, String authorUserId, Long roleId);

    Object updateUserDept(String id, Long deptId, String opUserId);

    Object addUserDept(UserDept userDept, String opUserId);

    void removeDept(UserDept userDept, String openid);

    ChannelConfig getChannelConfig(Long deptId);

    ChannelConfig findChannelConfig(String channelId);

    void updateChannelConfig(ChannelConfig config, String openid);

    List<User> getUserList(String appid, Long deptId);

    void clean(String openid);
}
